require 'rails/generators'
require 'rails/generators/migration'

module Sneak
  module Generators
    class InstallGenerator < Rails::Generators::Base
      include Rails::Generators::Migration

      source_root File.expand_path("../templates", __FILE__)

      def self.next_migration_number(dirname)
        if ActiveRecord::Base.timestamped_migrations
          migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
          migration_number += 1
          migration_number.to_s
        else
          "%.3d" % (current_migration_number(dirname) + 1)
        end
      end

      def perform_setup
        migration_template 'migration.rb', 'db/migrate/create_sneak.rb'
        template 'initializer.rb', 'config/initializers/sneak_initializer.rb'
        template 'observer.rb', 'app/models/flag_observer.rb'
      end
    end
  end
end